package com.mcglib.flac
{
	import flash.display.DisplayObject;
	import flash.events.MouseEvent;

	/**
	 * 数据渲染器
	 */
	public interface IDataRenderer
	{
		/**
		 * 初始化 
		 * @param ui 所控制的UI
		 * @param component 所属的FlacComponent
		 * 
		 */
		function initDataRenderer(ui:DisplayObject,component:FlacComponent):void;
		
		/**
		 * 所控制的UI
		 */
		function get ui():DisplayObject;
		
		/**
		 * 要渲染的数据
		 */
		function set data(v:*):void;
		
		/**
		 * 要渲染的数据
		 */
		function get data():*;
		
		/**
		 * 是否被选中
		 */
		function set selected(v:Boolean):void;
		
		/**
		 * 是否被选中
		 */
		function get selected():Boolean;
		
		/**
		 * 索引 在某些组件下有效
		 */
		function set itemIndex(v:uint):void;
		
		/**
		 * 索引 在某些组件下有效
		 */
		function get itemIndex():uint;
		
		/**
		 * 是否能选中
		 */
		function get selectable():Boolean;
		
		/**
		 * 是否能选中
		 */
		function set selectable(v:Boolean):void;
		
		/**
		 * 刷新渲染
		 */
		function refresh():void;
		
		/**
		 * 隐藏 这里把“隐藏”这个指令交给用户处理 而不是框架直接把UI的visible设置为flase
		 */
		function clearRenderer():void;
		
		/**
		 * 鼠标over的回调
		 */
		function onMouseOver(e:MouseEvent):void;
		
		/**
		 * 鼠标out的回调
		 */
		function onMouseOut(e:MouseEvent):void;
		
		/**
		 * 鼠标click的回调
		 */
		function onMouseClick(e:MouseEvent):void;
		
		
		
	}
}